//
// Created by Sam Sune on 2020/10/20.
//

#include <stdio.h>

int main() {
    double d1 = 10 / 4; // 处理的流程: 10 / 4 = 2.5 -> 截取整数，得到2 -> 保留小数位数，默认6位，得到2.000000
    double d2 = 10.0 / 4; // 如果希望保留小数，参与运算数必须有浮点数，结果为:2.500000
    // 取模公式: a % b = a - a / b * b
    int res1 = 10 % 3; // 1, 求 10/3 的余数
    int res2 = -10 % 3; // = -10 - (-10) / 3 * 3 = -10- (-3) * 3 = -10 + 9 = -1
    int res3 = 10 % -3; // 10 - 10 / (-3) * (-3) = 10 - 9 = 1
    int res4 = -10 % -3; // = -10 - (-10)/(-3) * (-3) = -10 - (-9) = -1
    printf("\n d1=%f d2=%f res1=%d res2=%d res3=%d res4=%d", d1, d2, res1, res2, res3, res4);

    // ++ 的使用

    int i = 10;
    int j = i++; // 运算规则等价是 int j = i; i = i + 1; ==> j = 10, i=11
    int k = ++i; // 运算规则等价 i = i + 1; int k = i; ===> i=12, k =12
    printf("\n i=%d j=%d", i, j); // i = 12 j = 10
    printf("\n i=%d k=%d", i, k);// i = 12 k = 12
    // ++ 或者 -- 还可以独立使用, 就相当于自增
    // k++ 等价于 k = k + 1
    // ++k 等价于 k = k + 1
    // 如果独立使用 ++k 和 k++ 完全等价
    k++; // k = 13
    ++k; // k = 14
    printf("\n k=%d", k); // k = 14
}